home *** CD-ROM | disk | FTP | other *** search
/ Amoszine 3 / Amoszine 3.adf / Celebrity_source / block_appear.AMOS / block_appear.amosSourceCode < prev    next >
AMOS Source Code  |  1992-02-26  |  3KB  |  95 lines

  1. ' *************************************************************
  2. '
  3. '                      Block Appear Program  
  4. '
  5. '                  - ** By Paul Nordovics ** - 
  6. '
  7. ' If you use this in your own programs I won't be offended if
  8. '              you mention me in your creditz !!!
  9. ' *************************************************************
  10. '
  11. ' Similar FX Have Been Done Before But This Allows U To Specify
  12. ' An Area Of Screen And Size Of Block - who could ask 4 more ! 
  13. '
  14. ' BLOCK_APPEAR[source,sx1,sy1,sx2,sy2,dest,dx,dy,block_width,block_height,speed] 
  15. '
  16. '       source = screen number where source image is   
  17. '      sx1,sy1 = co-ords of top-left corner of source image    
  18. '      sx2,sy2 = co-ords of bottom-right corner of source image    
  19. '         dest = screen number where image is being copied to    
  20. '        dx,dy = co-ords of top-left corner where image will be copied to      
  21. '  block_width = width of block to be copied each step     
  22. ' block_height = height of block to be copied each step  
  23. '        speed = speed of copy fx          
  24. '
  25. ' *************************************************************
  26. '
  27. ' ******************** 
  28. ' set up source screen 
  29. ' ******************** 
  30. Screen Open 0,320,256,16,Lowres
  31. Curs Off : Flash Off : Hide 
  32. Unpack 1 To 0
  33. '
  34. ' *************************
  35. ' set up destination screen
  36. ' *************************
  37. Screen Open 1,320,256,16,Lowres
  38. Curs Off : Flash Off 
  39. Screen Display 1,128,45,,
  40. Cls 0 : Paper 0
  41. '
  42. ' *********************  
  43. ' set up simple rainbow  
  44. ' *********************  
  45. Set Rainbow 0,1,142,"","",""
  46. For K=0 To 141
  47.    F#=K/141.0
  48.    Rain(0,K)=$F00+(F#*$F)
  49. Next K
  50. Rainbow 0,0,48+45,143
  51. '
  52. ' ************** 
  53. ' wait for input 
  54. ' ************** 
  55. Locate ,10 : Centre "- ** Press A Key ** -"
  56. Wait Key 
  57. '
  58. ' **** 
  59. ' loop 
  60. ' **** 
  61. Do 
  62.    Cls 0
  63.    ' *************************************
  64.    ' get random width and height for block
  65.    ' *************************************
  66.    W=2^(Rnd(3)+1)
  67.    H=2^(Rnd(2)+1)
  68.    '  
  69.    For K=0 To 9
  70.       BLOCK_APPEAR[0,98,(K*15)+48,226,(K*15)+56,1,98,(K*15)+48,W,H,1]
  71.    Next K
  72.    Wait 100
  73. Loop 
  74. '
  75. Procedure BLOCK_APPEAR[SOURCE,SX1,SY1,SX2,SY2,DEST,DX,DY,BLOCK_WIDTH,BLOCK_HEIGHT,SPEED]
  76.    AREA_LENGTH=SX2-SX1
  77.    AREA_HEIGHT=SY2-SY1
  78.    AMOUNT_X=(AREA_LENGTH/BLOCK_WIDTH)
  79.    AMOUNT_Y=(AREA_HEIGHT/BLOCK_HEIGHT)
  80.    NUMBER=AMOUNT_X*AMOUNT_Y
  81.    Dim CLEAR_FLAG(AMOUNT_X,AMOUNT_Y)
  82.    COUNT=0
  83.    Repeat 
  84.       X=Rnd(AMOUNT_X) : If X>0 Then X=X-1
  85.       Y=Rnd(AMOUNT_Y) : If Y>0 Then Y=Y-1
  86.       If CLEAR_FLAG(X,Y)=0
  87.          Screen Copy SOURCE,SX1+(X*BLOCK_WIDTH),SY1+(Y*BLOCK_HEIGHT),SX1+(X*BLOCK_WIDTH)+BLOCK_WIDTH,SY1+(Y*BLOCK_HEIGHT)+BLOCK_HEIGHT To DEST,DX+(X*BLOCK_WIDTH),DY+(Y*BLOCK_HEIGHT)
  88.          CLEAR_FLAG(X,Y)=1
  89.          Inc COUNT
  90.          If SPEED>0
  91.             Wait SPEED
  92.          End If 
  93.       End If 
  94.    Until COUNT=NUMBER
  95. End Proc